1. Field of the Invention
The present invention relates generally to three-dimensional (3D) graphics applications, and in particular, to a method, apparatus, and article of manufacture for providing access to multiple views using a single orientation/controller widget.
2. Description of the Related Art
(Note: This application references a number of different publications as indicated throughout the specification by reference numbers enclosed in brackets, e.g., [x]. A list of these different publications ordered according to these reference numbers can be found below in the section entitled “References.” Each of these publications is incorporated by reference herein.)
When working with three-dimensional (3D) data (i.e., in a graphics application), a number of orientations of the data are needed by the user to provide a better understanding of the shape and size of the geometry being viewed. Accessing a number of views of the data is difficult and involves several user steps with prior art methods. What is needed is a method and capability to easily view multiple different orientations of the 3D data. Such problems may be better understood with an explanation of prior art graphics applications and orientation view capabilities.
Typical 3D authoring applications allow users to create, manipulate, and view 3D geometry on two-dimensional displays. By rendering a view of the virtual scene from a particular viewpoint, a 2D image can be shown on the display. While this allows a rich and effective means of simulating the experience of viewing real 3D objects and scenes, controlling the viewpoint and understanding the position of the viewpoint relative to the object is a significant task for the user.
Early primitive 3D graphics applications were command line driven, allowing users to directly enter and query the numerical position, orientation, and other properties of a virtual camera which defined a particular viewpoint. With the advent of graphical user interfaces (GUIs), numerical entry and query were largely replaced by graphical representations of the 3D camera in the scene and direct manipulation of it either while viewing through the camera or while looking at it through another camera. In addition, preset viewpoints commonly used in the drafting and design fields, such as “top view”, “side view”, etc., could be selected through menus. However, there are many shortcomings to this approach and more advanced scene orientation methods are possible.
The prior art de facto standard interface for commercial 3D software applications is a four-window system with Top, Front, Side, and Perspective views as illustrated in FIG. 1. Thus, FIG. 1 illustrates a standard four-view 3D modeling interface with (clockwise from top-left) top, perspective, side, and front views. Typically, for modeling programs, the Top, Front, and Side views are drawn with an orthographic projection onto the viewing plane, and the Perspective view (also called a “three-quarter” view) is typically drawn with a perspective projection.
The layout illustrated in FIG. 1 has some costs. First, it clearly imposes highly divided attention, even for expert users. Second, the main viewing area is quartered making the model much smaller, and so, harder to work with. Third, there are many fixed-views sets which may be useful and the choice of which four to show may not be the best.
More recently, efforts have been made in commercial 3D software to better support “single-window” displays and interaction where users can choose to work in only one window, changing their viewpoint as needed.
It has become more common for 3D data to replace 2D blueprint-style plans and drawings. Users such as building contractors, construction supervisors, and engineering purchasing agents now need to regularly review 3D data. However, these users do not generally wish to invest much time into the significant learning and practice needed to operate complex 3D applications and their camera control techniques.
During their first encounters with 3D modeling applications, experienced 2D software users are often confused and misinterpret 3D scenes. For example, if first shown a perspective view of a box (similar to the Perspective view in FIG. 1), and then shown a side view of the box (without any animated rotation between the two views), users often misinterpret the results. Such users may suggest that their box disappeared or that only a square is visible. Thus, users are often confounded by their familiarity with 2D images (e.g., from a 2D graphics application such as Illustrator™ or Photoshop™) and have a difficult time understanding and realizing that there are hidden elements in the depth dimension. If users are informed (or realize) that an object is three-dimensional, the user may request different views of the object not by traditional view naming conventions like “front view”or “bird's eye view”, etc., but by spatial relationships relative to their current view. For the box example, users may state the desire “to look at the side around the edge” or “go around to the back side.”
3D Navigation
A great body of research has studied the issue of efficiently navigating around complex 3D virtual environments. For example, the present invention may require standard mouse and keyboard input and many approaches and metaphors have been developed for these requirements. The most pervasive is the cinematic camera model, enabling users to rotate, pan and zoom the viewpoint. Researchers have also explored other camera metaphors including orbiting and flying [34], using constraints [24, 30, 17], drawing a path [20], through-the-lens control [15], points and areas of interests [21], two-handed techniques [1, 42], and combinations of techniques [29, 31, 41]. Bowman et al. present taxonomies and evaluations of various interactions and camera models [6, 7]. A variety of metaphors have been explored for navigating in a virtual environment such as “eyeball”, “scene in hand”, and “flying” [40].
Some systems use constraints and pre-authored orientation and navigation to simplify the user experience. The metaphor of a guided tour [14] has been explored to pre-author camera paths and to signal interesting viewing vistas. StyleCam [8] takes this a step further by blending pre-authored elements and free-form navigation while introducing cinematic effects. The ShowMotion system [9] replaces static views with moving “shots” interspersed with cinematic visual transitions for repeatable motion-based 3D design reviews and improved 3D object comprehension.
Rules can be defined for cameras to automatically frame a scene that follow cinematic principles such as keeping the virtual actors visible in the scene or following the lead actor [12, 18, 3, 2]. Automatic path planning algorithms [38, 33, 13] have also been used for virtual navigation as well as finding effective viewing angles for 3D direct manipulation [25].
Camera techniques that use continuous depth sampling to modulate the flying speed in virtual environments have been studied [39]. Similarly, techniques such as HoverCam orbit objects at a constant distance and face the object's surface [22].
View Switching
Many commercial 3D software applications support the notion of multiple views of an object, such as side/top/back views, where a separate window is dedicated to a particular view. Displaying a particular view happens by selecting the view's name from a menu or by popping up the views window on top of the window display heap using some sort of window management user interface technique. Multiple workspaces have also been managed by introducing a room metaphor [19, 10].
Toolspaces [26] are storage spaces attached to the user's virtual body where objects or views can be placed that are always accessible yet out of the user's view until needed. Users access these toolspaces to store and retrieve objects through a lightweight but rapid navigational glance.
With the ExoVis technique, a 3D object is surrounded by 2D orthographic views (e.g., front, top, left) which are projected onto planes surrounding the 3D object. Thus, multiple 2D and the 3D perspective views are available simultaneously and within the same 3D space for improved view integration [35, 36, 37].
Early 3D VRML environments [27] offer “3D bookmarks”. The animated transitions between bookmark views, known as object constancy [28], reduces the need to re-assimilate the material once at the new view because the user saw “how they got there”, hence assisting orientation tasks.
To facilitate the realization that objects have depth, Grossman et al. [16] introduced animated rotation transitions between the different views in the VRML bookmarks fashion. If the current and target views were not both using the same view projection, the projection matrix was manipulated to more smoothly transition between orthographic and perspective views.
Other related work is the UniCam [41] click-to-focus [24] feature and the Tan et al. [34] navigation system. Both of these systems are suites of camera manipulation tools and both have one feature that examines the in-scene geometry. Once the user has clicked on an object of interest, a camera path is generated to move and orient the system, animates the view to the new position while the Tan system uses keyboard keys to move along the generated path.
The use of in-scene 3D widgets within the 3D workspace can facilitate 3D navigation tasks. Selectable “3D arrows” [11] point to objects of interest in the scene and, if selected, take the user to the target. The 3D arrows update and re-orientate as the user moves through the space or if the target moves. Within GeoZui3D [23] a “scene navigation widget” provides a 3D manipulator for the user with the ability to translate, rotate and scale the 3D scene about the center of the workspace.
Other work includes miniature overviews—“Worlds in Miniature” (or WIM) [32]. A WIM approach is directed towards immersive head tracked display environments and augments the display of 3D scene with a miniature copy of the scene which the user can “hold in their hand” and they control their viewpoint on the 3D scene by selecting locations on the miniature copy. However, such an approach is not concerned with desktop virtual environments operated with standard mouse and keyboard. In addition, such an approach requires the use of a literal miniature duplicate of the 3D scene.
Commercial Tools
In the commercial 3D application Maya™ (available from the assignee of the present invention), an in-scene widget called the ViewCompass™ provides more direct viewpoint selection, effectively replacing a small pull-down menu. As illustrated in FIG. 2, the standard views 202 are accessible on the ViewCompass™ 204 where users can click the cones to view the scene from that point of view. Clicking the cube 206 itself would move the camera to the standard three-quarter view with a perspective projection.
The ViewCompass™ is composed of a small cube 206 in the scene that represents the current orientation of the scene, along with six cones 208 pointing toward the faces of the cube 206. By clicking on the cone-shaped buttons 208 spatially associated with the faces of the cube 206, the virtual camera will turn to view that face, and both the model and the widget turn together during the animated transition. When clicking directly on the cube part 206 of the ViewCompass™, the camera moves to the standard three-quarter view (see top-right of FIG. 1) regardless of which cube face was clicked. Users report that this “return to the standard view” functionality is useful as an orientation recovery mechanism when the user becomes disoriented in the 3D scene.
Maya's ViewCompass™ works towards the single-window workflow goal, avoiding the standard four-view approach by providing six standard orthographic views and one perspective view. However, both engineering and architecture users have additional needs. For these classes of users, so-called “half views” (e.g. Front-Right) and additional “three-quarter views” (e.g. Top-Right-Back) are fundamental to the user's workflow. As such, in typical 3D engineering applications, the standard-views menu is significantly longer, often with a dozen views from which to choose. Including all of the “half” and “three-quarter” views with the six standard “face” views introduces an unwieldy total of twenty-six views as illustrated in Table 1.
TABLE 1BackFrontBottomTopRightLeftBack BottomBack TopBack RightBack LeftFront BottomFront TopFront RightFront LeftBottom RightBottom LeftTop RightTop LeftBack Right BottomBack Left BottomBack Right TopBack Left TopFront Right BottomFront Left BottomFront Right TopFront Left Top
Autodesk's Inventor™ product, for Computer Aided Design (CAD) users, has an in-scene widget, called “the Glass Cube,” that adds eight more viewpoints. Like the ViewCompass™, faces can be selected to move to that viewpoint. However, the corners of the Glass Cube can also be clicked on to move the viewpoint to a three-quarter view, providing a total of fourteen views. Also different from the ViewCompass™, the Glass Cube fills a large part of the center of the screen, and as it is semi-transparent, is effectively in front of the object or scene. The Glass Cube is not modeless. Users must invoke the widget by going to the Orbit tool, and once they have oriented the scene as desired, selecting a different tool will remove the Glass Cube. Neither edge-viewpoints nor dragging are provided by the Glass Cube.
Overview of Prior Art
As described above, one may note that prior art 3D modeling applications typically present a user with multiple windows of different viewpoints of an option which is front, side and perspective, to aid in perceiving and editing a 3D object. Such a multi-window display consumes screen space and divides attention resulting in multiple small work areas for the user. Additional prior art approaches use a large, single window that can be switched to different views. Typically, view switching is performed by selecting a view from a linear list of views. User comprehension of the spatial relationships between the views can be approved by adding animated transitions. However, if one wishes to support combined viewpoints such as three-quarter views, for example, front, top, left, or half views, such as front right, a long list of 26 possible viewpoints is required.
Accordingly, what is needed is a mechanism for easily viewing and manipulating the view of all potential viewpoints in a manner that is not confusing to the user.